package com.cDesarrollador.dao;

import java.util.List;

import org.hibernate.SessionFactory;

import com.cDesarrollador.model.Celular;

public class CelularDAO implements ICelularDAO {

	private SessionFactory sessionFactory;

	/**
	 * Get Hibernate Session Factory
	 * 
	 * @return SessionFactory - Hibernate Session Factory
	 */
	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	/**
	 * Set Hibernate Session Factory
	 * 
	 * @param SessionFactory
	 *            - Hibernate Session Factory
	 */
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	/**
	 * Add Celular
	 * 
	 * @param Celular
	 *            Celular
	 */

	public void addCelular(Celular Celular) {
		getSessionFactory().getCurrentSession().save(Celular);
	}

	/**
	 * Delete Celular
	 * 
	 * @param Celular
	 *            Celular
	 */

	public void deleteCelular(Celular Celular) {
		getSessionFactory().getCurrentSession().delete(Celular);
	}

	/**
	 * Update Celular
	 * 
	 * @param Celular
	 *            Celular
	 */

	public void updateCelular(Celular Celular) {
		getSessionFactory().getCurrentSession().update(Celular);
	}

	/**
	 * Get Celular
	 * 
	 * @param int Celular Id
	 * @return Celular
	 */

	public Celular getCelularById(int id) {
		List list = getSessionFactory().getCurrentSession()
				.createQuery("from Celular where id=?").setParameter(0, id)
				.list();
		return (Celular) list.get(0);
	}

	/**
	 * Get Celular List
	 * 
	 * @return List - Celular list
	 */

	public List<Celular> getCelulars() {
		List list = getSessionFactory().getCurrentSession()
				.createQuery("from Celular").list();
		return list;
	}

}
